From a0ad7109ca79d3d56231af9decca4c8c825beb14 Mon Sep 17 00:00:00 2001 From: "smh22@boulderdash.cl.cam.ac.uk" Date: Fri, 28 Feb 2003 14:56:50 +0000 Subject: [PATCH] bitkeeper revision 1.105.1.5 (3e5f78b2JrROb7627ksGnXNIWgAM3w) domain builder fix --- BitKeeper/etc/ignore | 131 +++++++++++++++++++++++++++++ tools/domain_builder/dom_builder.c | 61 ++++++-------- xen/common/keyhandler.c | 5 +- 3 files changed, 160 insertions(+), 37 deletions(-) diff --git a/BitKeeper/etc/ignore b/BitKeeper/etc/ignore index 0b34c3a528..57a4902380 100644 --- a/BitKeeper/etc/ignore +++ b/BitKeeper/etc/ignore @@ -22,3 +22,134 @@ xenolinux-2.4.16-sparse/scripts/kconfig.tk xen-2.4.16/foo xen-2.4.16/common/domain.c.smh URK +tools/domain_builder/dom_builder.o +tools/domain_builder/dom_kill.o +tools/domain_builder/domain_builder +tools/domain_builder/kill_domain +xen/arch/i386/acpitable.o +xen/arch/i386/apic.o +xen/arch/i386/arch.o +xen/arch/i386/boot/boot.o +xen/arch/i386/delay.o +xen/arch/i386/entry.o +xen/arch/i386/extable.o +xen/arch/i386/i387.o +xen/arch/i386/i8259.o +xen/arch/i386/idle0_task.o +xen/arch/i386/io_apic.o +xen/arch/i386/ioremap.o +xen/arch/i386/irq.o +xen/arch/i386/mm.o +xen/arch/i386/mpparse.o +xen/arch/i386/pci-dma.o +xen/arch/i386/pci-i386.o +xen/arch/i386/pci-irq.o +xen/arch/i386/pci-pc.o +xen/arch/i386/process.o +xen/arch/i386/rwlock.o +xen/arch/i386/setup.o +xen/arch/i386/smp.o +xen/arch/i386/smpboot.o +xen/arch/i386/time.o +xen/arch/i386/trampoline.o +xen/arch/i386/traps.o +xen/arch/i386/usercopy.o +xen/common/ac_timer.o +xen/common/block.o +xen/common/brlock.o +xen/common/common.o +xen/common/dom0_ops.o +xen/common/domain.o +xen/common/domain_page.o +xen/common/event.o +xen/common/kernel.o +xen/common/keyhandler.o +xen/common/lib.o +xen/common/memory.o +xen/common/network.o +xen/common/page_alloc.o +xen/common/perfc.o +xen/common/resource.o +xen/common/schedule.o +xen/common/slab.o +xen/common/softirq.o +xen/common/timer.o +xen/common/vsprintf.o +xen/drivers/block/blkpg.o +xen/drivers/block/driver.o +xen/drivers/block/elevator.o +xen/drivers/block/genhd.o +xen/drivers/block/ll_rw_blk.o +xen/drivers/block/xen_block.o +xen/drivers/char/driver.o +xen/drivers/char/xen_kbd.o +xen/drivers/char/xen_serial.o +xen/drivers/ide/driver.o +xen/drivers/ide/ide-disk.o +xen/drivers/ide/ide-dma.o +xen/drivers/ide/ide-features.o +xen/drivers/ide/ide-geometry.o +xen/drivers/ide/ide-pci.o +xen/drivers/ide/ide-probe.o +xen/drivers/ide/ide-taskfile.o +xen/drivers/ide/ide-xeno.o +xen/drivers/ide/ide.o +xen/drivers/ide/piix.o +xen/drivers/net/3c59x.o +xen/drivers/net/Space.o +xen/drivers/net/driver.o +xen/drivers/net/e1000/e1000.o +xen/drivers/net/e1000/e1000_ethtool.o +xen/drivers/net/e1000/e1000_hw.o +xen/drivers/net/e1000/e1000_main.o +xen/drivers/net/e1000/e1000_param.o +xen/drivers/net/ne/8390.o +xen/drivers/net/ne/ne.o +xen/drivers/net/ne/ne_drv.o +xen/drivers/net/net_init.o +xen/drivers/net/setup.o +xen/drivers/net/tg3.o +xen/drivers/pci/classlist.h +xen/drivers/pci/compat.o +xen/drivers/pci/devlist.h +xen/drivers/pci/driver.o +xen/drivers/pci/gen-devlist +xen/drivers/pci/names.o +xen/drivers/pci/pci.o +xen/drivers/pci/quirks.o +xen/drivers/pci/setup-res.o +xen/drivers/scsi/aacraid/aachba.o +xen/drivers/scsi/aacraid/aacraid.o +xen/drivers/scsi/aacraid/commctrl.o +xen/drivers/scsi/aacraid/comminit.o +xen/drivers/scsi/aacraid/commsup.o +xen/drivers/scsi/aacraid/dpcsup.o +xen/drivers/scsi/aacraid/linit.o +xen/drivers/scsi/aacraid/rx.o +xen/drivers/scsi/aacraid/sa.o +xen/drivers/scsi/constants.o +xen/drivers/scsi/driver.o +xen/drivers/scsi/hosts.o +xen/drivers/scsi/scsi.o +xen/drivers/scsi/scsi_dma.o +xen/drivers/scsi/scsi_error.o +xen/drivers/scsi/scsi_ioctl.o +xen/drivers/scsi/scsi_lib.o +xen/drivers/scsi/scsi_merge.o +xen/drivers/scsi/scsi_proc.o +xen/drivers/scsi/scsi_queue.o +xen/drivers/scsi/scsi_scan.o +xen/drivers/scsi/scsi_syms.o +xen/drivers/scsi/scsicam.o +xen/drivers/scsi/sd.o +xen/image +xen/image.gz +xen/include/asm +xen/include/linux +xen/net/dev.o +xen/net/dev_mcast.o +xen/net/devinit.o +xen/net/eth.o +xen/net/network.o +xen/net/skbuff.o +xen/tools/elf-reloc diff --git a/tools/domain_builder/dom_builder.c b/tools/domain_builder/dom_builder.c index 18bc643734..a402aef99c 100644 --- a/tools/domain_builder/dom_builder.c +++ b/tools/domain_builder/dom_builder.c @@ -52,10 +52,10 @@ static void dom_mem_cleanup(dom_mem_t * dom_mem) if(mem_fd < 0){ perror(PERR_STRING); } - - if(write(mem_fd, (dom_mem_t *)dom_mem, sizeof(dom_mem_t)) < 0){ - dbstatus("Error unmapping domain's memory.\n"); - } + + if(write(mem_fd, (dom_mem_t *)dom_mem, sizeof(dom_mem_t)) < 0){ + dbstatus("Error unmapping domain's memory.\n"); + } close(mem_fd); } @@ -163,7 +163,7 @@ static dom0_newdomain_t * create_new_domain(long req_mem) close(id_fd); sprintf(cmd_path, "Reserved %ld kbytes memory and assigned id %d to the" - "new domain.", req_mem, dom_data->domain); + " new domain.", req_mem, dom_data->domain); dbstatus(cmd_path); return dom_data; @@ -386,6 +386,7 @@ static int launch_domain(dom_meminfo_t * meminfo) dbstatus("Launched the new domain!"); close(cmd_fd); + return 0; } int main(int argc, char **argv) @@ -401,51 +402,45 @@ int main(int argc, char **argv) int kernel_fd; int count; int cmd_len; - int ret = 0; + int rc = -1; - unsigned long addr; + unsigned long addr; - if(argc < 4){ + if(argc < 4) { dberr("Usage: dom_builder " - "\n"); - ret = -1; + "\n"); goto out; } /* create new domain and set up all the neccessary mappings */ kernel_fd = do_kernel_chcks(argv[2], atol(argv[1]), &load_addr, &ksize); - if(kernel_fd < 0){ - ret = -1; + if(kernel_fd < 0) { + rc = errno; goto out; } - + /* request the creation of new domain */ - dom_data = create_new_domain(atol(argv[1])); - if(dom_data == 0){ - ret = -1; + if(!(dom_data = create_new_domain(atol(argv[1])))) goto out; - } /* map domain's memory */ - if(map_dom_mem(dom_data->pg_head, dom_data->memory_kb >> (PAGE_SHIFT - 10), - dom_data->domain, &dom_os_image)){ - ret = -1; + if(map_dom_mem(dom_data->pg_head, dom_data->memory_kb >> (PAGE_SHIFT-10), + dom_data->domain, &dom_os_image)) goto out; - } /* the following code does the actual domain building */ - meminfo = setup_guestos(dom_data->domain, kernel_fd, load_addr, ksize, - &dom_os_image); - if(meminfo == NULL){ - printf("Domain Builder: debug: meminfo NULL\n"); - ret = -1; - dom_mem_cleanup(&dom_os_image); + meminfo = setup_guestos(dom_data->domain, kernel_fd, load_addr, + ksize, &dom_os_image); + + /* and unmap the new domain's memory image since we no longer need it */ + dom_mem_cleanup(&dom_os_image); + + if(!meminfo) { + printf("Domain Builder: debug: meminfo NULL\n"); goto out; } - dom_mem_cleanup(&dom_os_image); - meminfo->virt_load_addr = load_addr; meminfo->num_vifs = atoi(argv[3]); meminfo->cmd_line[0] = '\0'; @@ -471,13 +466,11 @@ int main(int argc, char **argv) dbstatus(status); /* and launch the domain */ - if(launch_domain(meminfo) != 0) - ret = -1; - + rc = launch_domain(meminfo); out: - if( ret >= 0 ) + if( rc >= 0 ) return meminfo->domain; else - return ret; + return rc; } diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c index dcd1daa564..8bb4fecab0 100644 --- a/xen/common/keyhandler.c +++ b/xen/common/keyhandler.c @@ -76,7 +76,7 @@ void halt_machine(u_char key, void *dev_id, struct pt_regs *regs) /* XXX SMH: this is keir's fault */ static char *task_states[] = { - "Running", + "Runnable", "Interruptible Sleep", "Uninterruptible Sleep", NULL, "Stopped", @@ -104,9 +104,8 @@ void do_task_queues(u_char key, void *dev_id, struct pt_regs *regs) printk("Notifying guest...\n"); set_bit(_EVENT_DEBUG, &s->events); } - } + } while ( (p = p->next_task) != &idle0_task ); - while ( (p = p->next_task) != &idle0_task ); read_unlock_irqrestore(&tasklist_lock, flags); } -- 2.30.2